package com.xw.service;

import com.xw.model.Videos;
import com.xw.model.VideosItem;
import com.xw.vo.VideosInfoVo;

import java.util.List;
import java.util.Map;

public interface VideosService {
    Map findByWhere(String videoName, String stIdOne, String stIdTwo, String stIdThree, Integer page, Integer limit, Integer checkStatus, Integer isDel);

    Map saveVideos(String userId, String videoName, String teacherName, String stIdOne, String stIdTwo, String videoDesc, String videoImg, Integer isFree, Double originalPrice, Double currentPrice, Integer publishType, String videosItemJson);

    Map uploadVideos(String userId, String createId, Integer isCreateVideos, String videosId, String videoName,
                     String teacherName, String stIdOne, String stIdTwo, String videoDesc, String videoImg, Integer isFree,
                     Double originalPrice, Double currentPrice, Integer publishType, List<VideosItem> videosItemList, List<VideosInfoVo> videosInfoList, String alreadyVideosItemList);

    Map searchVideos(String searchName, Integer page, Integer limit);

    Map findVideosByType(String searchName, Integer sort, String stIdOne, String stIdTwo, Integer page, Integer limit);

    Map findVideosByVideoId(String userId, String videoId);

    Map updateVideoItem(String userId, String videoItemId, String videoItemName, Double videoItemSize, String videoUrl, Integer sort, String videoId);

    Map del(String videoId);

    Map findVideosDetailByVideoItemId(String userId, String videoItemId);

    Map updateType(Videos videos);

    Map pass(String videoId);

    Map noPass(Videos videos);

    Map updateVideo(String userId, String videoId, String videoName, String teacherName, String stIdOne, String stIdTwo, String videoDesc, String videoImg, Integer isFree, Double originalPrice, Double currentPrice, Integer publishType);

    Map delByVideosItemId(String userId, String videoItemId);

    Map delByVideoId(String userId, String videosId);

    Map updateSort(String userId, String videoItemId, Integer sort);

    Map updateNameOrUrl(String userId, Integer flag, String videoItemId, String videoItemName, String videoUrl, Double videoItemSize, String videoId);

    Map publish(String userId, String videosId);

    Map addVideoItem(String userId, String videosId, String videosItemJson);

    /**
     * @需求描述:查询讲师课程集
     * @创建人:whh
     * @创建时间: 2019/11/13
     * @修改需求:
     * @修改人:
     * @修改时间:
     * @需求思路:
     */
    Map<String,Object> getTeacherVideo(Map<String,Object> map);


    /**
     * @需求描述:查看课程讲师简介
     * @创建人:whh
     * @创建时间: 2019/11/13
     * @修改需求:
     * @修改人:
     * @修改时间:
     * @需求思路:
     */
    Map<String,Object> getVideoTeacher(Map<String,Object> map);

    Map addUsedVideo(String userId, String videoId, String videoItemIdJson);

    Map getVideoItems(String userId, Integer videoStatus, Integer page, Integer limit);

//    Map getVideos(String userId, Integer page, Integer limit);

    Map reeditVideo(String videosId, String videoName, String stIdOne, String stIdTwo, String videoDesc,
                    String videoImg, Integer isFree, Double originalPrice, Double currentPrice,
                    Integer publishType, List<VideosItem> videosItemList, List<VideosInfoVo> videosInfoList);

    Map issueVideo(String videoId);

    Map getAllVideos(String userId, Integer page, Integer limit);

    Map getVideosMessage(String videoId);

    Map addTryVideoItemsToVideoId(String videoItemId, String videoId);

    Map createUpdateVideo(String userId, String videoName, String teacherName, String stIdOne, String stIdTwo, String videoDesc, String videoImg, Integer isFree, Double originalPrice, Double currentPrice, Integer publishType);

    Map recordNumbersOfVideo(String videosId,String videoItemId);

    Map soldOutVideos(String videosId);

    Map findRecommendVideosMoreMP(String searchName, Integer sort, String stIdOne, String stIdTwo, Integer page, Integer limit);

    Map findTeacherRecommendVideosMP(String userId, String teacherId, Integer page, Integer limit);

    Map findTeacherAllVideosMP(String userId, String teacherId, Integer page, Integer limit);

    Map findBuyTeacherVideosByUserIdMP(String userId, String teacherId, Integer page, Integer limit);

    Map searchVideosMP(String userId, Integer sort, String stIdOne, String stIdTwo, Integer page, Integer limit);

    Map setMyRecommendVideo(String userId, String videoId, Integer myRecommend);

    Map createVideo(String userId, String videoName, String teacherName, String stIdOne, String stIdTwo, String videoDesc, String videoImg, Integer isFree, Double originalPrice, Double currentPrice, Integer publishType, String videosItemIds, String videosInfoJson);

    Map up(String videoId);

    Map addStudyCount(String userId, String videoId);

    Map getCheckingVideo(String userId, Integer page, Integer limit);

    Map getCheckPassVideo(String userId, Integer page, Integer limit);

    Map getCheckNoPassVideo(String userId, Integer page, Integer limit);

    Map getCheckingAndPassVideo(String userId, Integer page, Integer limit);

    Map getPassVideoItemNoVideos(String userId, Integer page, Integer limit);
}
